package com.xuecheng.api.content;

import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.api.content.model.qo.QueryCourseModel;
import com.xuecheng.api.content.model.vo.CourseBaseVO;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * @author wuyunyun
 * @data 2021/10/5 18:06
 */
@Api(value = "课程基本信息",tags = "课程基本信息的tags",description = "课程基本信息的description")
public interface CourseBaseControllerApi {
    @ApiOperation("查询全部课程基本信息")
    List<CourseBaseDTO> queryAll();
    @ApiOperation("根据id查询课程基本信息")
    @ApiImplicitParam(name="courseBaseId",value = "主键",required = true,paramType = "path",dataType = "long")
    CourseBaseDTO queryById(Long courseBaseId);
    @ApiOperation("分页条件查询课程基本信息")
    PageVO<CourseBaseDTO> queryCourseList(PageRequestParams params, QueryCourseModel queryCourseModel);
    @ApiOperation("新增课程基本信息")
    @ApiImplicitParam(name = "vo",value = "课程信息",required = true,dataType = "CourseBaseVO",paramType = "body")
    CourseBaseDTO createCourseBase(CourseBaseVO vo);
    @ApiOperation("修改课程基本信息")
    @ApiImplicitParam(name = "vo",value = "课程信息",required = true,dataType = "CourseBaseVO",paramType = "body")
    CourseBaseDTO modifyCourseBase(CourseBaseVO vo);

    @ApiOperation("删除课程基本信息")
    @ApiImplicitParam(name = "courseBaseId",value = "主键",required = true,dataType = "Long",paramType = "path")
    boolean removeCourseBase(Long courseBaseId);

    @ApiOperation("课程提交功能")
    @ApiImplicitParam(name = "courseBaseId",value = "主键",required = true,dataType = "Long",paramType = "path")
    boolean commitCourseBase(Long courseBaseId);

}
